#! /usr/bin/perl
use Switch;

#genera los ID
sub genID{
	if (-e "$_[0]"){
		# si el archivo existe obtenemos el ultimo ID ingresado
		# le sumamos uno y devolvemos
		open(getID, "$_[0]")|| die "no existe el archibo"; # for writin
		my @arch = <getID>;
		close(getID);
	
		($old_id) = split (';', $arch[@arch-1]);
		#print "devuelve $old_id mas uno\n";
		$_[1]=$old_id+1;
	}else{
		#si el archivono existe lo creamos
		#y devolvemos el valor correspondiente
		open(getID, ">$_[0]");
		#print "se creo el archivo y se devuelve un cero\n";
		$_[2]=0;
	}
}

sub carga{
	print "$_[0]: ";
	$ingreso = <STDIN>;
	chop($ingreso);
	print "\n";
	print "$ingreso\n";
	$_[1]=$ingreso;
}

Inicio:
print ("Bienvenido, ingrese si desea:\n1)Alta de un Paciente\n2)Alta de un Médico\n3)Nueva actividad médica\n4)Salir\n");
$opcion=carga("Opcion");

switch ($opcion){
		case 1 {
			#Cargamos los datos necesarios  p/paciente
			$file="pacientes.dat";
			$nombre = carga("Nombre");
			$apellido = carga("Apellido");
			$edad = carga("Edad");
			$id = &genID($file);
			$datos = join(';',$id, $nombre, $apellido, $edad);
			print "CARGADO...\n";			
		}
		case 2 {
			#Cargamos los datos necesarios  p/medico
			$file="medicos.dat";
			$nombre = carga("Nombre");
			$apellido = carga("Apellido");
			$edad = carga("Edad");
			$especialidad = carga("Especialidad");
			$id = &genID($file);
			$datos = join(';',$id, $nombre, $apellido, $edad, $especialidad);
			print "CARGADO...\n";
		}
		case 3 {
			#Cargamos los datos necesarios  p/historia
			$file="historia.dat";
			$id_paciente = carga("ID Paciente");
			$id_medico = carga("ID Médico");
			$sintoma = carga("Sintoma");
			$fecha = carga("Fecha");
			$id = &genID($file);
			$datos = join(';',$id,$id_paciente,$id_medico,$sintoma,$fecha);
			print "CARGADO...\n";
		}
		case 4{
				goto Fin;
		}
		else {
			print "ERROR: seleccione una de las opciones del menú\n\n";
			goto Inicio;	
		}
}

$in=open(BBDD, ">>$file")|| die "no existe el archibo"; # for writing
print BBDD $datos;
print BBDD "\n";
close(BBDD);
goto Inicio;
Fin:
print "Gracias, vuelva pronto\n";
